package main

//switch分支控制
//switch的值必须是可比较(Comparable)的
//不需要break语句,编译器会自动break
//default分支是可选的

func main() {
	println(stateSwitch(3))

	//println(ageSwitch(29))
}

func stateSwitch(state int) string {
	var desc string
	switch state {
	case 1:
		desc = "初始化状态" //无需手动break
	case 2:
		desc = "处理中状态"
	case 3:
		desc = "处理成功状态"
	case 4:
		desc = "处理失败状态"
	default: //default分支是可选的
		desc = "未知状态"
	}
	return desc
}

// switch的另一种写法:switch的条件为空,在case子句中写条件
// 应该尽量做到case的每一个条件都是互斥的
func ageSwitch(age int) string {
	switch {
	//switch的condition为空,condition放在case子句中
	case age >= 18:
		return "成年人"
	case age > 15:
		return "青少年"
	default:
		return "儿童"
	}
}
